"""
初始化默认模板数据
"""

import asyncio
from motor.motor_asyncio import AsyncIOMotorClient
from datetime import datetime
import uuid


async def init_default_templates():
    """初始化默认模板到MongoDB"""

    # 连接MongoDB
    client = AsyncIOMotorClient("mongodb://admin:newhand@localhost:27017/")
    db = client["ai_writing"]
    templates_collection = db.templates

    # 清空现有模板（可选）
    # await templates_collection.delete_many({})

    templates_to_create = []

    # 新闻类深度分析模板
    news_analysis_template = {
        "id": f"template_{uuid.uuid4().hex[:16]}",
        "name": "热点新闻深度分析模板",
        "description": "适用于热点事件的深度分析和多角度解读，注重原因剖析、影响评估和独特见解",
        "category": "news",
        "content": """# {标题}

## 事件概述
{时间}，{事件简述}。该事件迅速引发社会广泛关注，成为{时间段}的热点话题。

## 深层原因剖析

### 1. 直接诱因
{直接原因分析}

### 2. 深层次原因
{深层原因分析}

根据{数据来源}的数据显示，{相关数据}，这从侧面印证了{数据说明的问题}。

### 3. 系统性因素
{系统性因素分析}

## 多维度影响评估

### 对{影响对象1}的影响
{影响分析1}

相关专家{专家姓名}指出："{专家观点1}"

### 对{影响对象2}的影响
{影响分析2}

### 长远影响
{长远影响分析}

## 独特观点与见解

从{独特角度}的角度来看，{独特观点阐述}。

值得注意的是，{值得关注的点}。这一现象反映出{现象背后的深层问题}。

## 国际比较与借鉴

在{国家/地区}，类似情况的处理方式是{处理方式}，其经验值得我们{借鉴内容}。

## 多方观点对比

**支持方观点：**
- {支持观点1}
- {支持观点2}

**质疑方观点：**
- {质疑观点1}
- {质疑观点2}

**中立方观点：**
- {中立观点}

## 趋势预测与建议

### 短期趋势
{短期趋势预测}

### 中长期趋势
{中长期趋势预测}

### 政策建议
1. {建议1}
2. {建议2}
3. {建议3}

## 结语

{总结性观点}。这一事件的发展，值得我们持续关注和深入思考。

---
*数据来源：{数据来源}*
*分析时间：{分析时间}*
*作者：{作者}*""",
        "variables": [
            {
                "name": "标题",
                "description": "文章标题，需体现深度分析的特点",
                "type": "text",
                "required": True,
                "placeholder": "例如：某某事件背后的深层逻辑与社会影响"
            },
            {
                "name": "时间",
                "description": "事件发生的具体时间",
                "type": "text",
                "required": True,
                "placeholder": "例如：2024年10月1日"
            },
            {
                "name": "事件简述",
                "description": "事件的简要描述",
                "type": "textarea",
                "required": True,
                "placeholder": "用1-2句话概括事件核心内容"
            },
            {
                "name": "时间段",
                "description": "事件成为热点的时间段",
                "type": "text",
                "required": True,
                "placeholder": "例如：本周、近期、国庆期间"
            },
            {
                "name": "直接原因分析",
                "description": "事件的直接诱因分析",
                "type": "textarea",
                "required": True,
                "placeholder": "分析导致事件发生的直接原因"
            },
            {
                "name": "深层原因分析",
                "description": "事件背后的深层次原因",
                "type": "textarea",
                "required": True,
                "placeholder": "挖掘事件背后的社会、经济、文化等深层原因"
            },
            {
                "name": "数据来源",
                "description": "引用数据的来源",
                "type": "text",
                "required": True,
                "placeholder": "例如：国家统计局、某某研究机构"
            },
            {
                "name": "相关数据",
                "description": "支持分析的具体数据",
                "type": "textarea",
                "required": True,
                "placeholder": "引用具体的数字、比例等数据"
            },
            {
                "name": "数据说明的问题",
                "description": "数据所反映的问题",
                "type": "textarea",
                "required": True
            },
            {
                "name": "系统性因素分析",
                "description": "从系统层面分析相关因素",
                "type": "textarea",
                "required": True,
                "placeholder": "分析制度、体系、机制等系统性因素"
            },
            {
                "name": "影响对象1",
                "description": "第一个受影响的主体",
                "type": "text",
                "required": True,
                "placeholder": "例如：消费者、企业、行业"
            },
            {
                "name": "影响分析1",
                "description": "对第一个对象的影响分析",
                "type": "textarea",
                "required": True
            },
            {
                "name": "专家姓名",
                "description": "引用专家的姓名和职务",
                "type": "text",
                "required": False,
                "placeholder": "例如：某某大学教授张三"
            },
            {
                "name": "专家观点1",
                "description": "专家的具体观点",
                "type": "textarea",
                "required": False
            },
            {
                "name": "影响对象2",
                "description": "第二个受影响的主体",
                "type": "text",
                "required": True
            },
            {
                "name": "影响分析2",
                "description": "对第二个对象的影响分析",
                "type": "textarea",
                "required": True
            },
            {
                "name": "长远影响分析",
                "description": "事件的长期影响评估",
                "type": "textarea",
                "required": True,
                "placeholder": "分析事件对未来的长远影响"
            },
            {
                "name": "独特角度",
                "description": "独特的分析角度",
                "type": "text",
                "required": True,
                "placeholder": "例如：文化心理学、经济学、社会学"
            },
            {
                "name": "独特观点阐述",
                "description": "基于独特角度的观点阐述",
                "type": "textarea",
                "required": True,
                "placeholder": "提出与众不同的见解"
            },
            {
                "name": "值得关注的点",
                "description": "值得特别关注的方面",
                "type": "textarea",
                "required": True
            },
            {
                "name": "现象背后的深层问题",
                "description": "现象反映的深层次问题",
                "type": "textarea",
                "required": True
            },
            {
                "name": "国家/地区",
                "description": "用于对比的国家或地区",
                "type": "text",
                "required": False,
                "placeholder": "例如：美国、日本、欧盟"
            },
            {
                "name": "处理方式",
                "description": "其他国家/地区的处理方式",
                "type": "textarea",
                "required": False
            },
            {
                "name": "借鉴内容",
                "description": "可以借鉴的内容",
                "type": "textarea",
                "required": False
            },
            {
                "name": "支持观点1",
                "description": "支持方的主要观点1",
                "type": "textarea",
                "required": True
            },
            {
                "name": "支持观点2",
                "description": "支持方的主要观点2",
                "type": "textarea",
                "required": True
            },
            {
                "name": "质疑观点1",
                "description": "质疑方的主要观点1",
                "type": "textarea",
                "required": True
            },
            {
                "name": "质疑观点2",
                "description": "质疑方的主要观点2",
                "type": "textarea",
                "required": True
            },
            {
                "name": "中立观点",
                "description": "中立方的观点",
                "type": "textarea",
                "required": True
            },
            {
                "name": "短期趋势预测",
                "description": "短期内的发展趋势预测",
                "type": "textarea",
                "required": True
            },
            {
                "name": "中长期趋势预测",
                "description": "中长期的发展趋势预测",
                "type": "textarea",
                "required": True
            },
            {
                "name": "建议1",
                "description": "政策建议1",
                "type": "textarea",
                "required": True
            },
            {
                "name": "建议2",
                "description": "政策建议2",
                "type": "textarea",
                "required": True
            },
            {
                "name": "建议3",
                "description": "政策建议3",
                "type": "textarea",
                "required": True
            },
            {
                "name": "总结性观点",
                "description": "文章的总结性观点",
                "type": "textarea",
                "required": True,
                "placeholder": "总结全文，提出结论性观点"
            },
            {
                "name": "分析时间",
                "description": "分析文章的时间",
                "type": "text",
                "required": True,
                "defaultValue": datetime.now().strftime("%Y年%m月%d日")
            },
            {
                "name": "作者",
                "description": "作者署名",
                "type": "text",
                "required": True
            }
        ],
        "tags": ["新闻", "深度分析", "热点", "多角度", "数据支撑"],
        "isPublic": True,
        "usageCount": 0,
        "createdAt": datetime.utcnow(),
        "updatedAt": datetime.utcnow(),
        "authorId": "system"
    }

    templates_to_create.append(news_analysis_template)

    # 产品描述模板
    product_template = {
        "id": f"template_{uuid.uuid4().hex[:16]}",
        "name": "产品介绍深度模板",
        "description": "详细的产品介绍模板，包含功能、优势、应用场景等",
        "category": "product",
        "content": """# {产品名称} - {产品slogan}

## 产品概述
{产品概述}

## 核心功能

### {功能1标题}
{功能1描述}

### {功能2标题}
{功能2描述}

### {功能3标题}
{功能3描述}

## 产品优势

1. **{优势1标题}**: {优势1描述}
2. **{优势2标题}**: {优势2描述}
3. **{优势3标题}**: {优势3描述}

## 应用场景

{场景1}: {场景1描述}

{场景2}: {场景2描述}

## 技术规格

{技术规格详情}

## 客户案例

{客户案例内容}

## 价格与购买

{价格信息}

联系方式：{联系方式}""",
        "variables": [
            {"name": "产品名称", "description": "产品名称", "type": "text", "required": True},
            {"name": "产品slogan", "description": "产品口号/一句话介绍", "type": "text", "required": True},
            {"name": "产品概述", "description": "产品详细概述", "type": "textarea", "required": True},
            {"name": "功能1标题", "description": "第一个核心功能标题", "type": "text", "required": True},
            {"name": "功能1描述", "description": "第一个功能的详细描述", "type": "textarea", "required": True},
            {"name": "功能2标题", "description": "第二个核心功能标题", "type": "text", "required": True},
            {"name": "功能2描述", "description": "第二个功能的详细描述", "type": "textarea", "required": True},
            {"name": "功能3标题", "description": "第三个核心功能标题", "type": "text", "required": True},
            {"name": "功能3描述", "description": "第三个功能的详细描述", "type": "textarea", "required": True},
            {"name": "优势1标题", "description": "第一个产品优势标题", "type": "text", "required": True},
            {"name": "优势1描述", "description": "第一个优势的详细描述", "type": "textarea", "required": True},
            {"name": "优势2标题", "description": "第二个产品优势标题", "type": "text", "required": True},
            {"name": "优势2描述", "description": "第二个优势的详细描述", "type": "textarea", "required": True},
            {"name": "优势3标题", "description": "第三个产品优势标题", "type": "text", "required": True},
            {"name": "优势3描述", "description": "第三个优势的详细描述", "type": "textarea", "required": True},
            {"name": "场景1", "description": "第一个应用场景名称", "type": "text", "required": True},
            {"name": "场景1描述", "description": "第一个场景的详细描述", "type": "textarea", "required": True},
            {"name": "场景2", "description": "第二个应用场景名称", "type": "text", "required": True},
            {"name": "场景2描述", "description": "第二个场景的详细描述", "type": "textarea", "required": True},
            {"name": "技术规格详情", "description": "产品技术规格", "type": "textarea", "required": False},
            {"name": "客户案例内容", "description": "客户使用案例", "type": "textarea", "required": False},
            {"name": "价格信息", "description": "产品价格和购买信息", "type": "textarea", "required": True},
            {"name": "联系方式", "description": "联系方式", "type": "text", "required": True}
        ],
        "tags": ["产品", "介绍", "营销", "功能说明"],
        "isPublic": True,
        "usageCount": 0,
        "createdAt": datetime.utcnow(),
        "updatedAt": datetime.utcnow(),
        "authorId": "system"
    }
    templates_to_create.append(product_template)

    # 技术博客模板
    tech_blog_template = {
        "id": f"template_{uuid.uuid4().hex[:16]}",
        "name": "技术博客文章模板",
        "description": "技术分享和教程文章的标准模板",
        "category": "tech",
        "content": """# {文章标题}

## 前言

{引言内容}

## 背景

{背景介绍}

## {主题}是什么？

{概念介绍}

## 核心原理

{原理说明}

## 实现步骤

### 步骤1: {步骤1标题}

{步骤1内容}

```{代码语言}
{示例代码1}
```

### 步骤2: {步骤2标题}

{步骤2内容}

```{代码语言}
{示例代码2}
```

### 步骤3: {步骤3标题}

{步骤3内容}

## 最佳实践

{最佳实践内容}

## 常见问题

### Q: {问题1}
A: {答案1}

### Q: {问题2}
A: {答案2}

## 总结

{总结内容}

## 参考资料

- {参考资料1}
- {参考资料2}

---
作者：{作者名}
日期：{发布日期}""",
        "variables": [
            {"name": "文章标题", "description": "文章标题", "type": "text", "required": True},
            {"name": "引言内容", "description": "开篇引言", "type": "textarea", "required": True},
            {"name": "背景介绍", "description": "技术背景介绍", "type": "textarea", "required": True},
            {"name": "主题", "description": "文章主题/技术名称", "type": "text", "required": True},
            {"name": "概念介绍", "description": "概念和定义说明", "type": "textarea", "required": True},
            {"name": "原理说明", "description": "核心原理阐述", "type": "textarea", "required": True},
            {"name": "步骤1标题", "description": "第一步标题", "type": "text", "required": True},
            {"name": "步骤1内容", "description": "第一步详细内容", "type": "textarea", "required": True},
            {"name": "代码语言", "description": "代码语言", "type": "text", "required": False, "defaultValue": "javascript"},
            {"name": "示例代码1", "description": "示例代码1", "type": "textarea", "required": False},
            {"name": "步骤2标题", "description": "第二步标题", "type": "text", "required": True},
            {"name": "步骤2内容", "description": "第二步详细内容", "type": "textarea", "required": True},
            {"name": "示例代码2", "description": "示例代码2", "type": "textarea", "required": False},
            {"name": "步骤3标题", "description": "第三步标题", "type": "text", "required": True},
            {"name": "步骤3内容", "description": "第三步详细内容", "type": "textarea", "required": True},
            {"name": "最佳实践内容", "description": "最佳实践建议", "type": "textarea", "required": True},
            {"name": "问题1", "description": "常见问题1", "type": "text", "required": False},
            {"name": "答案1", "description": "问题1的答案", "type": "textarea", "required": False},
            {"name": "问题2", "description": "常见问题2", "type": "text", "required": False},
            {"name": "答案2", "description": "问题2的答案", "type": "textarea", "required": False},
            {"name": "总结内容", "description": "文章总结", "type": "textarea", "required": True},
            {"name": "参考资料1", "description": "参考资料链接1", "type": "text", "required": False},
            {"name": "参考资料2", "description": "参考资料链接2", "type": "text", "required": False},
            {"name": "作者名", "description": "作者署名", "type": "text", "required": True},
            {"name": "发布日期", "description": "发布日期", "type": "text", "required": True, "defaultValue": datetime.now().strftime("%Y-%m-%d")}
        ],
        "tags": ["技术", "博客", "教程", "开发"],
        "isPublic": True,
        "usageCount": 0,
        "createdAt": datetime.utcnow(),
        "updatedAt": datetime.utcnow(),
        "authorId": "system"
    }
    templates_to_create.append(tech_blog_template)

    # 插入所有模板
    for template in templates_to_create:
        try:
            # 检查是否已存在
            existing = await templates_collection.find_one({"name": template["name"]})
            if existing:
                print(f"模板 '{template['name']}' 已存在，跳过")
            else:
                await templates_collection.insert_one(template)
                print(f"✅ 成功创建模板: {template['name']}")
        except Exception as e:
            print(f"❌ 创建模板失败 ({template['name']}): {e}")

    # 关闭连接
    client.close()
    print("\n模板初始化完成！")


if __name__ == "__main__":
    asyncio.run(init_default_templates())
